﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Skywave.Data
{
    [DataContract]
    public class SqlReportRow
    {
        private Dictionary<string, string> _Values_String = new Dictionary<string, string>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, string> Values_String
        {
            get { return _Values_String; }
            set { _Values_String = value; }
        }

        private Dictionary<string, int?> _Values_Integer = new Dictionary<string, int?>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, int?> Values_Integer
        {
            get { return _Values_Integer; }
            set { _Values_Integer = value; }
        }

        private Dictionary<string, DataStructure.CurrencyValue> _Values_Currency = new Dictionary<string, DataStructure.CurrencyValue>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, DataStructure.CurrencyValue> Values_Currency
        {
            get { return _Values_Currency; }
            set { _Values_Currency = value; }
        }

        private Dictionary<string, double?> _Values_Double = new Dictionary<string, double?>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, double?> Values_Double
        {
            get { return _Values_Double; }
            set { _Values_Double = value; }
        }

        private Dictionary<string, DateTime?> _Values_DateTime = new Dictionary<string, DateTime?>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, DateTime?> Values_DateTime
        {
            get { return _Values_DateTime; }
            set { _Values_DateTime = value; }
        }

        private Dictionary<string, TimeSpan?> _Values_TimeSpan = new Dictionary<string, TimeSpan?>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, TimeSpan?> Values_TimeSpan
        {
            get { return _Values_TimeSpan; }
            set { _Values_TimeSpan = value; }
        }

        private Dictionary<string, bool?> _Values_Boolean = new Dictionary<string, bool?>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        [DataMember]
        public Dictionary<string, bool?> Values_Boolean
        {
            get { return _Values_Boolean; }
            set { _Values_Boolean = value; }
        }

        private Dictionary<string, byte[]> _Values_ByteArray = new Dictionary<string, byte[]>();
        /// <summary>
        /// Key: Id of related SqlReportColumn
        /// Value: Returned value of related SqlReportColumn
        /// </summary>
        public Dictionary<string, byte[]> Values_ByteArray
        {
            get { return _Values_ByteArray; }
            set { _Values_ByteArray = value; }
        }
    }
}
